Java并发编程札记-(三)JUC原子类-06JDK1.8新增:LongAdder、DoubleAdder、LongAccumulator、DoubleAccumulator

本文探讨了JDK1.8中引入的LongAdder、DoubleAdder、LongAccumulator和DoubleAccumulator,重点分析了LongAdder在高并发环境下的性能优势及其与AtomicLong的区别。通过示例展示了LongAdder如何实现long型变量的原子访问和更新,并解释了其基于CAS的实现原理。文章指出,尽管LongAdder在统计场景下表现优秀,但并不适合所有同步控制需求。
摘要由CSDN通过智能技术生成

DoubleAccumulator、LongAccumulator、DoubleAdder、LongAdder是JDK1.8新增的部分,是对AtomicLong等类的改进。比如LongAccumulator与LongAdder在高并发环境下比AtomicLong更高效。本文以LongAdder为例,学习这些类。

API中是这么介绍的:LongAdder中会维护一组(一个或多个)变量,这些变量加起来就是要以原子方式更新的long型变量。当更新方法add(long)在线程间竞争时,该组变量可以动态增长以减缓竞争。方法sum()返回当前在维持总和的变量上的总和。与AtomicLong相比,LongAdder更多地用于收集统计数据,而不是细粒度的同步控制。在低并发环境下,两者性能很相似。但在高并发环境下,LongAdder有着明显更高的吞吐量,但是有着更高的空间复杂度。

outline
//构造函数
LongAdder()
    //创建初始和为零的新加法器。

//方法摘要
void    add(long x)
    //添加给定的值。
void    decrement()
    //相当于add(-1)。
doubl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值